Most people generally interact with computers through the use of a keyboard, mouse, and/or touch-sensitive display screen to input information into the computer and through a display screen to receive information from the computer. However, people with blindness or severe sight impairment are often unable to use a display screen to interact with a computer. Accordingly, many such people rely on assistive-technology programs such as screen readers to receive information from computer systems.
A screen-reading assistive-technology program typically reads the content on a screen aloud, so that it can be heard by a person who is unable to view the screen. Such programs are not limited to use by sight-impaired people, but the majority of users of screen-reading programs may have some level of sight impairment. Multiple screen-reading programs are presently available, including but not limited to Job Access With Speech (“JAWS”) from Freedom Scientific, Window-Eyes from GW Micro, Dolphin Supernova by Dolphin Computer Access, and open-source products such as NonVisual Desktop Access (“NVDA”), for example.
When using web-based services, such as a social media platform, a computer user typically accesses these services through a web browser, such as Microsoft's Edge or Internet Explorer, Google's Chrome, Apple's Safari, or Mozilla's Firefox. This process is known in the art and generally involves having a web-based service send content over a network to the browser, which displays the content. The browser then sends back text, clicks, and other user-provided content, allowing the user to interact with the service.
Meanwhile, a native software application (“app”) on a user device—for example, a social media “app” running on a smart phone, tablet, or other device—may typically execute instructions on the user device, including instructions for displaying screens, but may also access services and content provided by a server over a network.
To allow sight-impaired users access to web-based services, many screen-reading programs work with one or more web browsers to read the content sent by the web service. Furthermore, to allow sight-impaired users access to applications installed on a user's device, many screen-reading programs work with the applications to read the content they display.
While screen readers have become more advanced and are capable of parsing complex web pages and displays of native applications, these programs are often incapable of determining which parts of a web page or application display should be read first, and which parts maybe skipped entirely.
For example, so-termed “tooltips” are included in many web pages and native applications. A tooltip is a user-interface element that may provide information about an element displayed on a screen. Tooltips may take the form of a graphical object, such as a box, and appear when a user hovers over the corresponding element, e.g., by using a mouse cursor or other pointer. Usage of tooltips is especially prevalent on web pages, where many graphical web browsers are configured to display the title attribute of a hypertext markup language (HTML) element as a tooltip when the user hovers the pointer over the element.
While tooltips are intended to enhance the use of a web page or application, they may cause problems with many screen reader technologies. For example, a screen-reading program designed to work with one or more web browsers may be programmed to navigate a web page from the top left to the bottom right. But due to the way tooltips are provided in a web page (e.g., using the title or alt attributes of an HTML element, or otherwise being located at a very top or bottom of a web page), tooltips may cause the screen reader to navigate immediately to the tooltip and read it, rather than following the logical order of the web page. This may cause confusion for the visually-impaired user and result in a disorienting screen-reading experience. Furthermore, once the tooltip is dismissed by the user, the screen reader may proceed to read aloud the content that follows the tooltip's location on the page, rather than proceeding from the top of the page. Similar problems may exist for native applications running on the user device, where the time of reading of a tooltip may depend highly on visual factors, such as how big the tooltip is, the direction it is pointing, etc. In an application, even if the screen reader reads the tooltip at a time close to its corresponding element, this may not be satisfactory for a visually-impaired user, who may remain confused because the tooltip is read after the element, or other content is read in between reading the tooltip and the element, etc.
The issues with tooltips for screen readers creates difficulties for both web-based content and native applications, whose designers may wish to use tooltips to enhance the user experience, but do not want to prevent visually-impaired users from being able to adequately access their content.